1. http
 //#region 
    http协议: 超文本传输协议

    规定了请求报文和响应报文


    请求报文: 
        请求首行 
            get 数据在url中
        请求头
            post请求时,有这个信息. 描述了请求主体中数据的格式
            content-type: application/x-www-form-urlencoded
        请求空行
        请求主体
            get 请求没有请求主体
            post 请求有请求主体 就是要上传的数据


    响应报文: 
        响应首行
            状态码 
                200  成功
                301  重定向
                302  重定向
                304  缓存
                400开头  客户端错误
                500开头  服务器端内部错误
        响应头
        响应空行
        响应主体
            服务器响应给浏览器的具体的数据


    url: 统一资源定位符(互联网中资源的地址)

    完整url地址组成: 协议://域名:端口号/路径?查询字符串#哈希值


    get和post的区别:
    
        1. get请求的参数会出现在地址栏,post不会
        2. get请求相对来说不安全, post相对安全
        3. get请求传输数据是有限的,post请求理论上是无限的
        4. 获取数据用get,上传数据用post
//#endregion
2. express
//#region 
 express 是一个第三方的包
 可以帮助我们快速搭建node服务
 使用: 
    1. 下载包: npm i express 
    2. 引入 const express = rquire('express')
    3. 创建应用对象 const app = express()
    4. 配置路由
        app.get/post('/路径',(请求对象, 响应对象)=>{})
    5. 启动服务
        app.listen(端口号, 回调)


    get请求上传的参数: 
        1. 查询字符串  req.query
        2. 路由参数  req.params 
            配置路由参数: app.get('/路径/:参数名?') 注意: 如果路由参数没有问题,则必须传递,有问题表示参数可选
            怎么传: 在请求时,把参数写在url中指定的路径后面

    post请求上传的参数: 
         req.body 但是现在接收不到,需要配合中间件使用


    // res.send() //用来响应字符串 
    // 注意: 
    // 1. 如果直接传入数据,则认为是修改状态码.不推荐修改状态码
    // 2. 如果传入的是数组/对象. res.send会自动将数组/对象转成json格式的字符串然后响应

    // res.sendFile() //用来响应文件
    // 注意: 1. 必须传入绝对路径 2. 如果响应的文件,不是浏览器可以解析的文件,则直接下载.如果可以解析,则直接展示

    // res.download('相对/绝对路径') 让浏览器下载文件

    // res.redirect('目标路径') //重定向



    
//#endregion

3. node内置模块 
//#region 
    const path = require('path') 
    path.resolve('路径','路径', '路径') 帮我们拼接绝对路径
    特点: 
    1. 会自动给路径添加斜杠 
    2. 可以识别相对路径写法 认识: ../
    3. 虽然默认会自动拼接__dirname. 但是在webpack中可能会出问题,所以建议的写法: 
    path.resolve(__dirname, '路径',...)
//#endregion